package com.guzhen.wallpager;

import android.app.Activity;

import java.lang.reflect.Field;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

public class ActivityUtils {

//
//    private List getActivitiesByReflect() {
//        List list0 = new LinkedList();
//        Object object0 = null;
//        try {
//            Object object1 = this.getActivityThread();
//            if(object1 == null) {
//                return list0;
//            }
//
//            Field field0 = object1.getClass().getDeclaredField("mActivities");
//            field0.setAccessible(true);
//            Object object2 = field0.get(object1);
//            if(!(object2 instanceof Map)) {
//                return list0;
//            }
//
//            for(Object object3: ((Map)object2).values()) {
//                Class class0 = object3.getClass();
//                Field field1 = class0.getDeclaredField("activity");
//                field1.setAccessible(true);
//                Activity activity0 = (Activity)field1.get(object3);
//                if(object0 == null) {
//                    Field field2 = class0.getDeclaredField("paused");
//                    field2.setAccessible(true);
//                    if(!field2.getBoolean(object3)) {
//                        object0 = activity0;
//                        continue;
//                    }
//
//                    ((LinkedList)list0).addFirst(activity0);
//                    continue;
//                }
//
//                ((LinkedList)list0).addFirst(activity0);
//            }
//        }
//        catch(Exception exception0) {
//
//        }
//
//        if(object0 != null) {
//            ((LinkedList)list0).addFirst(object0);
//        }
//
//        return list0;
//    }
//    private Object getActivityThread() {
//        Object object0 = this.getActivityThreadInActivityThreadStaticField();
//        return object0 == null ? this.getActivityThreadInActivityThreadStaticMethod() : object0;
//    }
//
//    private Object getActivityThreadInActivityThreadStaticField() {
//        try {
//            Field field0 = Class.forName("android.app.ActivityThread").getDeclaredField("sCurrentActivityThread");
//            field0.setAccessible(true);
//            return field0.get(null);
//        }
//        catch(Exception exception0) {
//            return null;
//        }
//    }
//
//
//    private Object getActivityThreadInActivityThreadStaticMethod() {
//        try {
//            return ActivityThread.currentActivityThread();
//        }
//        catch(Exception exception0) {
//            return null;
//        }
//    }

}
